There is an increasing need to deliver large amounts of data across both private and public networks. This is particularly the case for delivery of data over the Internet, the largest single network in the world. Systems which are arranged to serve a large amount of data to a large amount of users require high availability, high scalability and robust load management in order to meet high user demands. For example, one data protocol commonly used to send data between computing systems is the Hypertext Transfer Protocol (HTTP). Systems utilising HTTP are generally termed “web-class systems”, as HTTP is one of the principal protocols utilised to deliver a number of services colloquially known as “web” services. Other protocols are also used to deliver data between computing systems. Examples of data transfer (i.e. application layer) protocols include File Transfer Protocol (FTP), Real-time Streaming Protocol (RTSP) and Stream Control Transmission Protocol (SCTP).
While web-scale systems vary greatly in functionality, with applications ranging from search engines to media sites, many content hosting web-sites such as online stock trading, news sites, movie booking sites, etc., exhibit similar fundamental characteristics. That is, all of these systems are required to service a large amount of users. Moreover, the working set of content on a web server (e.g. the results of common searches, frequently accessed videos, frequently accessed web pages) commonly fits within the collective memory cache of the servers which house (and host) the content. Therefore, the traditional ‘bottleneck’ of a web-based system is not the disk access speed or CPU processing ability of the system, but the ability of the system to handle and process web-server requests.